package cn.gwm.flink.streaming.dws.reservecharge;

import cn.gwm.flink.streaming.dws.reservecharge.beans.RcElectricConfigLadderDao;
import cn.gwm.flink.streaming.dws.reservecharge.beans.RcElectricConfigSeasonDao;
import cn.gwm.flink.streaming.dws.reservecharge.beans.RcElectricConfigValleyPeakDao;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @author Liu.Nanfang
 * @date 2022/7/19 13:33
 * @description
 */
@Data
@ToString(callSuper = true)
public class ReserveChargeElectricConfig {
    /**
     * 地区code编码
     */
    private String areaCode;
    /**
     * 用电类型 1: 居民 2: 合表 3: 工业 9:其他
     */
    private Integer useElectricType;
    /**
     * 是否开通峰谷 0 没 1 : 开通
     */
    private Integer valleyPeak;
    /**
     * 是否区分阶梯 0: 无阶梯 1: 分阶梯
     */
    private Integer ladder;
    /**
     * 分季类型 1: 不分季
     */
    private Integer seasonType;
    /**
     * 适用范围 1: 商业直流充电桩 2: 家用交流充电桩 3: 随车枪 4: 商业交流充电桩 5: 超级快充 6: 其他
     */
    private String applicableScope;

    private List<ElectricConfig> electricConfigs;

    @Setter
    @Getter
    public static class ElectricConfig {
        private Integer seasonType;

        private Integer ladderType;

        private Float notOpen;

        private Float highPeak;

        private Float flatPeak;

        private Float lowPeak;

        private Date executeTime;

        /**
         * 分季定义
         */
        private List<RcElectricConfigSeasonDao> rcElectricConfigSeasonParamList = new ArrayList<>();

        /**
         * 峰谷定义，峰谷中的分季为不区分表示峰谷时段和分季无关
         */
        private List<RcElectricConfigValleyPeakDao> rcElectricConfigValleyPeakParamList = new ArrayList<>();
        /**
         * 阶梯定义
         */
        private List<RcElectricConfigLadderDao> rcElectricConfigLadderParamList = new ArrayList<>();

    }


}
